Skip to content

Conversation

@ImBIOS
Copy link
Owner

@ImBIOS ImBIOS commented Mar 21, 2025

v4.2.0 Release: Performance and Reliability Improvements

This PR introduces several key improvements for the v4.2.0 release:

  1. Caching Mechanism:

    • Implemented a caching system to store GitHub repository data
    • Only fetches updated data instead of all repos on each run
    • Significant performance improvement for users/organizations with many repositories
  2. Performance Benchmarking:

    • Added benchmarking tools to measure performance improvements
    • Created performance baseline metrics
    • Documentation for benchmarking capabilities
  3. Code Improvements:

    • Refactored yearly commit calculator for better performance
    • Added efficient repository data processing
    • Integrated caching with GitHub data operations

These changes make the waka-readme-stats more reliable, faster, and efficient, especially for users with large GitHub profiles. The caching system is also beneficial for those with many repositories, as it dramatically reduces API calls and processing time.

Implementation Details

  1. Added a new CacheManager class that manages cache operations
  2. Created benchmarking utilities for measuring performance
  3. Integrated caching with repository data processing
  4. Added a standalone benchmarking script

Next Steps for Test Coverage (To Be Implemented)

  • Add tests for CacheManager
  • Add tests for benchmarking utilities
  • Improve test coverage across the codebase
  • Create integration tests to verify performance improvements

@changeset-bot
Copy link

changeset-bot bot commented Mar 21, 2025

⚠️ No Changeset found

Latest commit: c9b078e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link

github-actions bot commented Mar 21, 2025

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
pip/setuptools 🟢 5.1
Details
CheckScoreReason
Security-Policy🟢 10security policy file detected
Code-Review⚠️ 2Found 3/13 approved changesets -- score normalized to 2
Maintained🟢 1030 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Binary-Artifacts⚠️ 2binaries present in source code
License🟢 10license file detected
Vulnerabilities🟢 100 existing vulnerabilities detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Signed-Releases⚠️ -1no releases found
Fuzzing🟢 10project is fuzzed
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
pip/setuptools 77.0.3 🟢 5.1
Details
CheckScoreReason
Security-Policy🟢 10security policy file detected
Code-Review⚠️ 2Found 3/13 approved changesets -- score normalized to 2
Maintained🟢 1030 commit(s) and 5 issue activity found in the last 90 days -- score normalized to 10
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Binary-Artifacts⚠️ 2binaries present in source code
License🟢 10license file detected
Vulnerabilities🟢 100 existing vulnerabilities detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Signed-Releases⚠️ -1no releases found
Fuzzing🟢 10project is fuzzed
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0

Scanned Files

  • Pipfile
  • Pipfile.lock

@github-actions
Copy link

README stats current output:

Code Time

Profile Views

Lines of code

🐱 My GitHub Data

📦 1.3 MB Used in GitHub's Storage

🏆 297 Contributions in the Year 2025

💼 Opted to Hire

📜 379 Public Repositories

🔑 125 Private Repositories

I'm an Early 🐤

🌞 Morning                4308 commits        █████████░░░░░░░░░░░░░░░░   37.27 % 
🌆 Daytime                4314 commits        █████████░░░░░░░░░░░░░░░░   37.32 % 
🌃 Evening                2750 commits        ██████░░░░░░░░░░░░░░░░░░░   23.79 % 
🌙 Night                  186 commits         ░░░░░░░░░░░░░░░░░░░░░░░░░   01.61 % 

📅 I'm Most Productive on Friday

Monday                   1519 commits        ███░░░░░░░░░░░░░░░░░░░░░░   13.14 % 
Tuesday                  1763 commits        ████░░░░░░░░░░░░░░░░░░░░░   15.25 % 
Wednesday                1522 commits        ███░░░░░░░░░░░░░░░░░░░░░░   13.17 % 
Thursday                 1970 commits        ████░░░░░░░░░░░░░░░░░░░░░   17.04 % 
Friday                   2099 commits        █████░░░░░░░░░░░░░░░░░░░░   18.16 % 
Saturday                 1388 commits        ███░░░░░░░░░░░░░░░░░░░░░░   12.01 % 
Sunday                   1297 commits        ███░░░░░░░░░░░░░░░░░░░░░░   11.22 % 

📊 This Week I Spent My Time On

🕑︎ Time Zone: Asia/Jakarta

💬 Programming Languages: 
Markdown                 2 hrs 43 mins       █████████░░░░░░░░░░░░░░░░   36.90 % 
JSON                     1 hr 36 mins        █████░░░░░░░░░░░░░░░░░░░░   21.80 % 
TypeScript               47 mins             ███░░░░░░░░░░░░░░░░░░░░░░   10.78 % 
YAML                     36 mins             ██░░░░░░░░░░░░░░░░░░░░░░░   08.35 % 
Python                   32 mins             ██░░░░░░░░░░░░░░░░░░░░░░░   07.45 % 

🔥 Editors: 
Cursor                   7 hrs 22 mins       █████████████████████████   100.00 % 

🐱‍💻 Projects: 
thymer-in-a-nextshell    2 hrs 12 mins       ███████░░░░░░░░░░░░░░░░░░   29.88 % 
redocly                  1 hr 58 mins        ███████░░░░░░░░░░░░░░░░░░   26.86 % 
warp-multi-sidebars      1 hr 33 mins        █████░░░░░░░░░░░░░░░░░░░░   21.20 % 
waka-readme-stats        1 hr 27 mins        █████░░░░░░░░░░░░░░░░░░░░   19.84 % 
browser-tools-mcp        9 mins              █░░░░░░░░░░░░░░░░░░░░░░░░   02.21 % 

💻 Operating System: 
Mac                      7 hrs 22 mins       █████████████████████████   100.00 % 

I Mostly Code in TypeScript

TypeScript               147 repos           ███████████░░░░░░░░░░░░░░   42.24 % 
JavaScript               87 repos            ██████░░░░░░░░░░░░░░░░░░░   25.00 % 
Python                   8 repos             █░░░░░░░░░░░░░░░░░░░░░░░░   02.30 % 
MDX                      5 repos             ░░░░░░░░░░░░░░░░░░░░░░░░░   01.44 % 
Lua                      1 repo              ░░░░░░░░░░░░░░░░░░░░░░░░░   00.29 % 

Timeline

You can use this website to view the generated base64 image.

data:image/png;base64,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qVSpUurVq5d27typWbNmqXbt2rpy5Yq2bt2qmjVrqm3btsrIyFC9evXk6empOXPmKCMjQxEREfL29tZ3331n49kBAAAAAABYDoFTFkVHRyssLOyB43369FFkZKRSU1P1z3/+U5988okuXrwof39/PfPMM5owYYJq1KghSfr999/16quv6rvvvpOHh4dat26tWbNmyc/Pz9rTAQAAAAAAyDUETgAAAAAAALAoB1s3AAAAAAAAgPyFwOkvmEwmJSUliYVgAAAAAAAAWUPg9Bf++OMP+fj46I8//rB1KwAAAAAAAHaBwAkAAAAAAAAWReAEAAAAAAAAiyJwAgAAAAAAgEUROAEAAAAAAMCiCJwAAAAAAABgUQROAAAAAAAAsCgCJwAAAAAAAFgUgRMAAAAAAAAsisAJAAAAAAAAFkXgBAAAAAAAAIsicAIAAAAAAIBFETgBAAAAAADAogicAAAAAAAAYFEETgAAAAAAIM8JDQ2VwWBQcHCwrVtBDhA4AQAAAAAAwKIInAAAAAAAgN0ZPXq0qlWrJl9fXzk7O6t48eLq06eP4uLizGPGjx9vXiW1evVqVa5cWR4eHmrcuLFOnjxpHmcymfT222/L399fvr6+GjJkiMaOHSuDwSCDwWAed3/VVXh4+ENr3Dd79mzVqlVLfn5+cnZ2VkBAgDp37qxTp05lmsPq1atVrlw5ubu7q02bNlq+fLm5ZnR0tHncnj171KZNG/n6+srNzU116tTRF198YbkfZi5wsnUDAJCXGacY/npQLogfY7JJXQAAAMBeREVF6eLFiwoKClJaWppOnjypTz75RDExMdq7d2+msRcvXlTPnj1Vrlw53b59Wz/88IP69eunnTt3SpLmz5+vf/7zn5KkEiVKaPXq1UpOTs5xb9u3b9eZM2dUqlQplShRQjExMVqzZo327dun06dPy83NTYcPH1a3bt2UkZEhb29vnTp1SoMGDXrgXjt37lRYWJhSU1NlNBplNBp16NAhPf/881q2bJl69+6d4z5zEyucAAAAAACA3fn00091/fp1HTlyRDExMfroo48kSfv27dPZs2czjU1LS9OXX36pmJgYDRs2TJK0a9cu3b59W5I0ffp0SVKDBg10/vx5nTt3TiVLlsxxb++++65u3Lih48eP68iRI4qKipIk/fbbb+aQa9asWcrIyJCXl5dOnDihM2fO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kNFozO32AAAAAABAHtelS5dM75csWaKAgAAdP35c1atX1wsvvKBhw4bpxx9/NAdMK1euVPfu3WUwGCRJ/fr1M19ftmxZzZ07V/Xq1dPNmzfl6empV199VT/88INq1Kih0qVL65lnntFzzz2nnj17ytXVVZI0efJkdevWTRMmTDDfKyQkJFNvTZs21ciRI83vY2NjHzqncePGqUWLFpKkZcuWqWTJklqzZo1eeOEF+fj42CwXsZsVTv8rMTFRkuTn5/fYcTdv3lTp0qUVFBSkDh066NixY48dn5KSoqSkpEwvAAAAAABg/06fPq3u3burbNmy8vb2VnBwsCTpwoULkqSAgAA999xzWrFihSTp/Pnz2r17t3r27Gm+x4EDB9S+fXuVKlVKXl5eatKkSaZ7eHh4aMOGDTpz5ozeeusteXp6auTIkapfv75u3bolSTp8+LCaNWv22F7r1q2bpTk1aNDA/Gc/Pz9VqlRJMTExWbo2N9ll4JSRkaFhw4apUaNGql69+iPHVapUSUuWLNHXX3+t5cuXKyMjQw0bNtRvv/32yGumTJkiHx8f8ysoKCg3pgAAAAAAAKysffv2un79uj7++GPt2bNHe/bskXRvU+77evbsqS+++EKpqalauXKlatSooRo1aki690hey5Yt5e3trRUrVmjfvn1as2bNA/eQpHLlyql///5avHixDh48qOPHj+uzzz6TJLm7u/9lrx4eHhaZs63YZeAUERGho0ePatWqVY8d16BBA/Xu3Vu1atVSkyZN9NVXXykgIEAffvjhI68ZM2aMEhMTza9ff/3V0u0DAAAAAAAru3btmk6ePKm33npLzZo1U5UqVXTjxo0HxnXo0EF37txRVFSUVq5cmWl104kTJ3Tt2jVNnTpVzz77rCpXrpxpw/BHCQ4OVqFChcz7UNesWVNbt261yLx++ukn859v3LihU6dOqUqVKpIkFxcXpaenW6ROdtnNHk73DRkyROvXr9eOHTtUsmTJbF3r7Oys2rVr68yZM48c4+rqan6mEgAAAAAA5A+FCxdWkSJF9NFHHykwMFAXLlzQ6NGjHxjn4eGhjh076u2331ZMTIy6d+9uPleqVCm5uLho3rx5GjRokI4ePapJkyZlun78+PG6deuW2rRpo9KlSyshIUFz585Vamqqea+lcePGqVmzZipXrpy6deumtLQ0bdy4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S67jVVVVGjNmjJYuXXrVY2JjY11/DgkJadRYrqexWZ7WahpOmZmZro28ruXKx9+usNlsevXVV/Xqq682O7dNmzbq0qVLsx/fGlm5d5W/ZreEfE+yem7UFXXlS9lW51s9d0/z1+fW6p+r1fmeZPXcqCvqypeyrc63eu5wv3/96186cuSInn/+eXXp0kVFRUUqKipyvcvpu+++U3l5ufr27StJuu2225Sdna3p06df85pDhgzRzJkzlZycLLvdrjlz5kiSBg4cqA0bNiguLk52u2dbMd7Muh5LNw0HAAAAAADwtOrqap06dUo//vijvv32Wy1ZskRjx47Vgw8+qKlTpyopKUn9+vXT5MmT9e233yonJ0dTp07V7373O91+++2SpIULF+rjjz/WwoULlZeXpyNHjjT4LqI777xTX3zxhRYvXqzly5dLkp555hmdO3dOkyZN0v79+5Wfn68vv/xS06dPV11dnVvn6s2s66HhBAAAAAAAfNq2bdsUGxuruLg4JScna+fOnVqxYoU2bdqktm3bymazadOmTYqMjNTdd9+tpKQk9ezZU+vWrXNdY/jw4fr000/1+eefa8CAARo5cqRycnIazBs6dKi2bNmiV155Re+8844cDof27Nmjuro6jRo1Sv369VNaWpoiIiLUpo17WzPezLqeVvOROnheQECAFi5cqICAALL9KN+TrJ4bdUVd+VK21flWz93T/PW5tfrnanW+J1k9N+qKuvKlbKvzrZ57SxYe1kHt27VTTW2t1zLbt2un8LCm7THVmC16JKlbt27atGnTdc+ZMGGCJkyY0OB9J0+erPf3u+++W1VVVa6/x8fHa+PGjde89q5duxo8npWVddWxX24pFBcXd9UWQzfK8gab+f+jAgAAAAAAaIRTpaVyVlR6LS88rIM6RUd7LQ/NR8MJAAAAAAAAbsUeTgAAAAAAAHArGk4AAAAAAABwKxpOAAAAAAAAcCsaTgAAAAAAAHArGk5+pqioSI899pgcDofat2+v7t27a9asWTp79qzrnI0bN2rUqFG65ZZbZLPZlJub67X82tpazZ07V/369VNISIgcDoemTp2q4uJij2dL0qJFi9S7d2+FhIQoMjJSSUlJ2rdv301nNzb/l5566inZbDYtX77cLfmeRF1ZU1e+XFOStXVlZU01Jl+irpqD1yrWQE+grqgrT2ANZA0E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

Last Updated on 23/03/2025 15:39:38 UTC

- Introduced tests for localization management, file writing, and binary caching.
- Included setup and teardown fixtures for a clean test environment.
- Ensured coverage for both successful operations and error handling.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants